{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from os import path\n",
    "from PIL import Image\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from wordcloud import WordCloud, STOPWORDS,ImageColorGenerator\n",
    "pd_data=pd.read_csv('category.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "hive_mask = np.array(Image.open(path.join('./', \"hive.png\")))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "data=pd_data[['CategoryName','CategoryNum']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CategoryName</th>\n",
       "      <th>CategoryNum</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Seafood</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Meat/Poultry</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Condiments</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Confections</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Produce</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Dairy Products</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Beverages</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Grains/Cereals</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     CategoryName  CategoryNum\n",
       "0         Seafood           12\n",
       "1    Meat/Poultry            6\n",
       "2      Condiments           12\n",
       "3     Confections           13\n",
       "4         Produce            5\n",
       "5  Dairy Products           10\n",
       "6       Beverages           12\n",
       "7  Grains/Cereals            7"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "d1=data.CategoryNum.to_list()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "d2=data.CategoryName.to_list()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "dic=dict(zip(d2,d1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "wc = WordCloud(background_color=\"white\", max_words=20, \n",
    "               mask=hive_mask, width=1000, height=1000,contour_color='steelblue',contour_width=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<wordcloud.wordcloud.WordCloud at 0x98ee5c0>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wc.generate_from_frequencies(dic)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "#image_color = ImageColorGenerator(hive_mask)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(wc)\n",
    "plt.axis(\"off\")#不显示坐标轴\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.savefig('northwind.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<wordcloud.wordcloud.WordCloud at 0x982d588>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wc.to_file(\"temp.png\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<wordcloud.wordcloud.WordCloud at 0x98ee5c0>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wc.to_file(\"hive.png\") "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}